// name  playcontroller  播放控件的vux的数据

import {getLyric} from 'api/songlist/index.js'

export default {
  namespaced: true,
  state:{
      // 歌曲播放列表
      controlList:[
        {
          id:1894094482,
          al:{}
        }
      ],
      conindex: 0,  //播放的歌曲第几首
      // 歌词
      lyric: '',
      // 歌曲的播放时间
      currentTime: 0,
  },
  mutations:{
      // 修改歌曲播放列表
      setControlList(state,val){
          state.controlList = val
          // console.log( JSON.stringify(state.controlList) )
          // sessionStorage.setItem('controlList',JSON.stringify(state.controlList))
      },
      // 切换当前播放第几首
      setCurrentMusic(state,val){
        state.conindex = val
      },
      // 保存歌词
      saveLyrics(state,val){
        state.lyric = val
      },
      // 修改歌词的播放时间
      setCurrentTime(state,val){
        state.currentTime = val
      }
  },  
  actions:{
      // 获取歌词 并触发 mutations 保存歌词
      async getLyrics({commit},id){
        let res = await getLyric(id)
        // console.log(res)
        commit('saveLyrics',res.lrc.lyric)
      }
  },
  getters:{
      // 通过计算属性处理音乐歌词
      lyriclist(state){
        
        let arr = state.lyric.split(/\n/igs).map((i) => {
          let min = i.slice(1,3)
          let set = i.slice(4,6)
          let mill = i.slice(7,10)
          
          return {
            min,set,mill,
            lyric: i.slice(11,i.length-1),
            context: i,
            time: parseInt(mill)+parseInt(set)*1000+parseInt(min)*60*1000
          }
        })
        
        // 增加前一句歌词的时间
        arr.forEach((e,i) => {
          if( i-1 < 0){
            e.pretime = 0
          }else{
            e.pretime = arr[i-1].time
          }
          
        });

        return arr
      }
  }
}